//
// Description: 14. 最长公共前缀
// Created by Loading on 2025/2/22.
//

#include <bits/stdc++.h>

using namespace std;

string longestCommonPrefix(vector<string> &strs) {
    int n = strs.size();
    if (n == 1) {
        return strs.back();
    }
    // 从首个字符串的第一个字符开始
    for (int i = 0; i < strs[0].size(); ++i) {
        char c = strs[0][i];
        // 纵向比较，遍历其他字符串的第i个字符
        for (int j = 1; j < n; ++j) {
            // 如果发现不相等 或 遍历到其他字符串结尾，直接返回之前公共部分
            if (strs[j][i] != c || i == strs[j].size()) {
                return strs[0].substr(0, i);
            }
        }
    }

    return strs[0];
}

int main() {
    vector<string> strs{"flower", "flow", "flight"};
    auto res = longestCommonPrefix(strs);

    cout << res << endl;

    return 0;
}
